home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 18 Board & Card Games / DOMINOES.SDA / DOMINOES (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  4.5 KB  |  149 lines

  1. 100 REM M.RICHTER 90064 12/78
  2. 110 PW=0:TW=0:TY=0
  3. 120 KB=198
  4. 130 POKE53280,1:POKE53281,1:POKE53272,21:I=RND(-TI):DIMD$(27),H$(1,20),PL(6),H(20)
  5. 140 LU$="":LO$=LU$+"                                     [145]"
  6. 150 PRINT"[152][147]         DOMINOES ":PRINT"PET HAS THREE LEVELS OF PLAY:
  7. 160 [153]"1. EASY: YOU CAN WIN TWO GAMES OF THREE
  8. 170 PRINT"2. SLIGHTLY HARDER: MAYBE 60/40 FOR YOU
  9. 180 [153]"3. TOUGH: NEARLY EQUALS BEST PLAY
  10. 190 PRINT"WHICH DO YOU WANT?
  11. 200 [151]KB,0:[146]KB,1:[161]C$:[139]C$[179]"1"[176]C$[177]"3"[137]200
  12. 210 AL[178][197](C$)
  13. 220 PL[178]0:[153]"LOAD"[166]15)"DOMINOES
  14. 230 J=0:K=0:FORI=0TO27:D$(I)=MID$(STR$(J),2)+MID$(STR$(K),2):GOSUB1550
  15. 240 K=K+1:IFK>JTHENK=0:J=J+1
  16. 250 NEXTI:FORI=0TO26:J=I+(28-I)*RND(1):X$=D$(I):D$(I)=D$(J):D$(J)=X$:GOSUB1550
  17. 260 NEXTI:FORJ=0TO6:FORI=0TO1:H$(I,J)=D$(7*I+J):NEXTI:GOSUB1550:NEXTJ:SP=14
  18. 270 FORJ=7TO20:FORI=0TO1:H$(I,J)="":NEXTI:GOSUB1550:NEXTJ
  19. 280 K0$="D":K1$="D[146]RAW":K2$="DRAWS A BONE
  20. 290 L$[178]"":[129]J[178]0[164]1:[129]I[178]0[164]6:X$[178][200](H$(J,I),1):[141]1550
  21. 300 [139]X$[178][201](H$(J,I),1)[175]X$[177]L$[167]L$[178]X$:P[178]J:K[178]I
  22. 310 [130]I:[130]J:[139]L$[178]""[137]220
  23. 320 [153]"PCMDLCMDACMDYCMDECMDD
  24. 330 PRINTSPC(8)"[213][192][192][192][192][162][162][162][192][192][192][192][201]   BONE COUNT
  25. 340 [153][166]8)"(null)       WAIT    (null)   STR$STR$STR$STR$STR$STR$STR$STR$STR$STR$
  26. 350 PRINTSPC(8)"[221] [214]     [146]  [214] [221]   YARD
  27. 360 [153][166]8)"(null)       WAIT    (null)   YOU
  28. 370 PRINTSPC(8)"[202][192][192][192][192][162][162][162][146][192][192][192][192][203]   PET
  29. 380 [141]1020:[141]1170
  30. 390 [153]LO$:[153]"THE LARGEST DOUBLET IS ";L$L$:R$[178]L$:[141]1010:[137]640
  31. 400 P[178]0:[151]KB,0:[153]LO$:[153]"WHICH BONE (OR "K1$")? ";
  32. 410 [146]KB,1:[161]X$:[139]X$[178]K0$[167][153]X$:[137]1230
  33. 420 [139]X$[179]"0"[176]X$[177]"6"[137]410
  34. 430 [153]X$;:
  35. 440 [146]KB,1:[161]Y$:[139]Y$[179]"0"[176]Y$[177]"6"[137]440
  36. 450 [153]Y$:X$[178]X$[170]Y$:Y$[178]Y$[170][200](X$,1)
  37. 460 [129]K[178]0[164]20:[139]H$(0,K)[179][177]X$[175]H$(0,K)[179][177]Y$[167][130]K:[137]1540
  38. 470 RF[178]0:[139]PL[178]0[167]L$[178][201](X$,1):R$[178][200](X$,1):LF[178]1:[137]640
  39. 480 LF[178]0:[139]L$[178][200](X$,1)[176]L$[178][201](X$,1)[167]LF[178]1
  40. 490 [139]R$[178][200](X$,1)[176]R$[178][201](X$,1)[167]RF[178]1
  41. 500 [139]LF[170]RF[178]0[137]1540
  42. 510 [139]LF[172]RF[178]0[167][145]LF[170]1[137]600,620
  43. 520 [139]L$[178]R$[176]H$(0,1)[178]""[137]580
  44. 530 [153]LO$:[153]X$" - LEFT OR RIGHT? ";
  45. 540 [161]C$:[139]C$[179][177]"L"[175]C$[179][177]"R"[137]540
  46. 550 [153]C$:[139]C$[178]"L"[137]580
  47. 560 [139]R$[178][201](X$,1)[167]R$[178][200](X$,1):[137]640
  48. 570 R$[178][201](X$,1):[137]640
  49. 580 [139]L$[178][201](X$,1)[167]L$[178][200](X$,1):[137]640
  50. 590 L$[178][201](X$,1):[137]640
  51. 600 [139]R$[178][201](X$,1)[167]R$[178][200](X$,1):[137]640
  52. 610 R$[178][201](X$,1):[137]640
  53. 620 [139]L$[178][201](X$,1)[167]L$[178][200](X$,1):[137]640
  54. 630 L$[178][201](X$,1):[137]640
  55. 640 [143] PLAY THE DOMINO
  56. 650 L%[178]0:Y$[178]H$(P,K):[129]I[178]K[164]19:H$(P,I)[178]H$(P,I[170]1):[130]I:H$(P,I)[178]"":[141]1170
  57. 660 [141]1020:X$[178]Y$:[153]"":[141]1070:PL[178]PL[170]1
  58. 670 X[178]PL:[139]X[177]18[167]X[178]X[171]18:[153]"
  59. 680 PRINTTAB(1+2*X)X$
  60. 690 X$=L$:GOSUB1080:PRINTLEFT$(LO$,12)TAB(9)X$:X$=R$:GOSUB1080
  61. 700 PRINT"[145][145][145]"TAB(17)X$:IFH$(0,0)=""ORH$(1,0)=""GOTO1330
  62. 710 IFPGOTO400
  63. 720 REM PET'S PLAY
  64. 730 P=1:ONALGOTO910,860
  65. 740 FORI=0TO6:PL(I)=0:NEXTI
  66. 750 FORK=0TO20:IFH$(1,K)=""GOTO770
  67. 760 GOSUB1570:X=VAL(X$):PL(X)=PL(X)+1:X=VAL(Y$):PL(Y)=PL(Y)+1:NEXTK
  68. 770 REM PLAYABLE DOUBLET WITH SUCCESSOR
  69. 780 FORK=0TO20:IFH$(1,K)=""GOTO810
  70. 790 GOSUB1570:IF(X$=Y$)AND(X$=R$ORX$=L$)AND(PL(VAL(X$))>2)GOTO940
  71. 800 NEXTK
  72. 810 REM PLAYABLE BONE WITH SUCCESSOR
  73. 820 FORK=0TO20:IFH$(1,K)=""GOTO860
  74. 830 GOSUB1570:IF((X$=L$)OR(X$=R$))ANDPL(VAL(X$))>1GOTO940
  75. 840 IF((Y$=L$)OR(Y$=R$))ANDPL(VAL(Y$))>1GOTO940
  76. 850 NEXTK
  77. 860 REM PLAYABLE DOUBLET
  78. 870 FORK=0TO20:IFH$(1,K)=""GOTO900
  79. 880 GOSUB1570:IFX$=Y$AND(X$=L$ORX$=R$)GOTO940
  80. 890 NEXTK
  81. 900 REM STILL MORE ALGORITHMS HERE
  82. 910 REM PLAYABLE BONE
  83. 920 FORK=0TO20:GOSUB1570:IFL$=X$ORR$=X$ORL$=Y$ORR$=Y$GOTO940
  84. 930 NEXTK:PRINTLO$:PRINT"PET "K2$:GOSUB1010:GOTO1230:REM PET DRAWS OR PASSES
  85. 940 REM WRAPUP PET'S PLAY
  86. 950 PRINTLO$:PRINT"PET PLAYS "X$Y$:GOSUB1010
  87. 960 X=VAL(X$):PL(X)=PL(X)-1:X=VAL(Y$):PL(X)=PL(X)-1
  88. 970 IFL$=X$THENL$=Y$:GOTO640
  89. 980 IFL$=Y$THENL$=X$:GOTO640
  90. 990 IFR$=X$THENR$=Y$:GOTO640
  91. 1000 R$=X$:GOTO640
  92. 1010 FORXX=1TO100:NEXTXX:RETURN:REM PAUSE 1 SEC
  93. 1020 REM PUT UP COUNT
  94. 1030 PRINTLEFT$(LO$,13)TAB(30)28-SP"[157] "
  95. 1040 FORI=0TO20:IFH$(0,I)>""THENNEXTI
  96. 1050 PRINTTAB(30)I"[157] ":FORI=0TO19:IFH$(1,I)>""THENNEXTI
  97. 1060 PRINTTAB(30)I"[157] ":RETURN
  98. 1070 X$=LEFT$(X$,1)+"[157][192][157]"+RIGHT$(X$,1):RETURN
  99. 1080 REM GET DOT FORMAT
  100. 1090 ON1+VAL(X$)GOTO1100,1110,1120,1130,1140,1150,1160
  101. 1100 X$="   [157][157][157]   [157][157][157]   ":RETURN
  102. 1110 X$="   [157][157][157] [209] [157][157][157]   ":RETURN
  103. 1120 X$="[209]  [157][157][157]   [157][157][157]  [209]":RETURN
  104. 1130 X$="[209]  [157][157][157] [209] [157][157][157]  [209]":RETURN
  105. 1140 X$="[209] [209][157][157][157]   [157][157][157][209] [209]":RETURN
  106. 1150 X$="[209] [209][157][157][157] [209] [157][157][157][209] [209]":RETURN
  107. 1160 X$="[209] [209][157][157][157][209] [209][157][157][157][209] [209]":RETURN
  108. 1170 REM PRINT PLAYER'S DOMINOES
  109. 1180 PRINTLU$"":FORI=0TO19:IFH$(0,I)>""GOTO1210
  110. 1190 IFI<20THENPRINT" [157] [157] "
  111. 1200 I=0:RETURN
  112. 1210 X$=H$(0,I):GOSUB1070:PRINTX$;:IFI<19THENPRINT"[145] [145]";
  113. 1220 NEXTI:RETURN
  114. 1230 REM PET DRAWS OR PASSES
  115. 1240 IFSP=28GOTO1290
  116. 1250 FORI=0TO20:IFH$(P,I)>""THENNEXTI
  117. 1260 PRINTLEFT$(LU$,13)
  118. 1270 IFSP>26THENPRINT" YARD":PRINT"EMPTY":K0$="P":K1$="P[146]ASS":K2$="PASSES
  119. 1280 H$(P,I)[178]D$(SP):SP[178]SP[170]1:[141]1170:[141]1020:[145]P[170]1[137]400,720
  120. 1290 [143] PASS LOGIC
  121. 1300 [139]L%[137]1330
  122. 1310 L%[178]1
  123. 1320 [145]P[170]1[137]720,400
  124. 1330 S0[178]0:[129]I[178]0[164]19:X$[178]H$(0,I)
  125. 1340 [139]X$[177]""[167]S0[178]S0[170][197]([200](X$,1))[170][197]([201](X$,1)):[130]I
  126. 1350 S1[178]0:[129]I[178]0[164]19:X$[178]H$(1,I)
  127. 1360 [139]X$[177]""[167]S1[178]S1[170][197]([200](X$,1))[170][197]([201](X$,1)):[130]I
  128. 1370 [139]S0[177]S1[167]X$[178]" PET WINS  ":PW[178]PW[170]1
  129. 1380 [139]S1[177]S0[167]X$[178]" YOU WIN   "
  130. 1390 [139]S0[178]S1[167]X$[178]"IT'S A DRAW":TY[178]TY[170]1
  131. 1400 T0[178]T0[170]S0:T1[178]T1[170]S1:TW[178]TW[170]1:[141]1020
  132. 1410 [153]LO$:[153]""X$"WAIT SCORE: YOU"S0", PET"S1:[141]1010
  133. 1420 [153]"TOTOTOTOTOTOTOTOTOTOTO":[153]" ANOTHER?  "
  134. 1430 [151]KB,0:[146]KB,1:[161]C$:[139]C$[178]"Y"[137]220
  135. 1440 [139]C$[179][177]"N"[137]1430
  136. 1450 [143] WRAPUP
  137. 1460 [153]"LOAD  TOTALS"
  138. 1470 [153]"  YOU WON",TW[171]TY[171]PW"GAMES"
  139. 1480 [153]"  PET WON",PW"GAMES"
  140. 1490 [139]TY[167][153]"      AND",TY"WERE DRAWS"
  141. 1500 [153]"  POINTS"
  142. 1510 [153]"      YOU",T0"POINTS"
  143. 1520 [153]"      PET",T1"POINTS"
  144. 1530 [128]
  145. 1540 [153]LO$:[153]"TRY AGAIN: ";:[151]203,0:[137]410
  146. 1550 [153]"ON"[166]14);:[139]U[167][153]" ";
  147. 1560 [153]"SHUFFLING ":U[178]1[171]U:[142]
  148. 1570 X$[178]H$(1,K):Y$[178][201](X$,1):X$[178][200](X$,1):[142]
  149.